package com.gxa.service.Impl;

import com.gxa.common.R;
import com.gxa.mapper.EmpExcelWriteMapper;
import com.gxa.pojo.Emp;
import com.gxa.pojo.zk.ExcelWrite;
import com.gxa.service.EmpExcelWriteService;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

@Service
public class EmpExcelWriteServiceImpl implements EmpExcelWriteService {

    @Autowired(required = false)
    private EmpExcelWriteMapper empExcelWriteMapper;

    @Override
    public R excelsWrite(ExcelWrite excelWrite) throws IOException {
        R r=new R();
        List<Emp> empList;
        if(excelWrite.getCurrentPage()!=null&&!"".equals(excelWrite.getCurrentPage())){
            System.out.println(excelWrite.getCurrentPage()+"===="+excelWrite.getPageSize());
            Integer param01=(excelWrite.getCurrentPage()-1);
            Integer param02=excelWrite.getPageSize();
            String deptName=excelWrite.getDeptName();
            empList= empExcelWriteMapper.excelWrite(param01,param02,deptName);
        }else if(excelWrite.getCurrentPage()==null&&!"".equals(excelWrite.getCurrentPage())&&excelWrite.getDeptName()!=null&&!"".equals(excelWrite.getDeptName())){
            Integer param01=null;
            Integer param02=null;
            String deptName=excelWrite.getDeptName();
            empList=empExcelWriteMapper.excelWrite(param01,param02,deptName);
        }
        else{
            empList=empExcelWriteMapper.excelWriteNew();
        }
        //得到WorkBook对象
        Workbook workbook = new XSSFWorkbook();
        //创建sheet
        Sheet sheet = workbook.createSheet("用户表");
        //创建表头
        Row row = sheet.createRow(0);
        row.createCell(0).setCellValue("emp.getEmp_id()");
        row.createCell(1).setCellValue("emp.getEmp_number()");
        row.createCell(2).setCellValue("emp.getEmp_education()");
        row.createCell(3).setCellValue("emp.getEmp_height()");
        row.createCell(4).setCellValue("emp.getEmp_address()");
        row.createCell(5).setCellValue("emp.getEmp_name()");
        row.createCell(6).setCellValue("emp.getEmp_sex()");
        row.createCell(7).setCellValue("emp.getEmp_weight()");
        row.createCell(8).setCellValue("emp.getEmp_birthday()");
        row.createCell(9).setCellValue("emp.getEmp_leaveTime()");
        row.createCell(10).setCellValue("emp.getEmp_tel()");
        row.createCell(11).setCellValue("emp.getEmp_education()");
        row.createCell(12).setCellValue("emp.getEmp_maritalStatus()");
        row.createCell(13).setCellValue("emp.getEmp_departureTb()");
        row.createCell(14).setCellValue("emp.getEmp_currentAddress()");
        row.createCell(15).setCellValue("emp.getEmp_bloodType()");
        row.createCell(16).setCellValue("emp.getEmp_health()");
        row.createCell(17).setCellValue("emp.getEmp_category()");
        row.createCell(18).setCellValue("emp.getEmp_job()");
        row.createCell(19).setCellValue("emp.getEmp_idCard()");
        row.createCell(20).setCellValue("emp.getEmp_testPos()");
        row.createCell(21).setCellValue("emp.getEmp_prize()");
        row.createCell(22).setCellValue("emp.getEmp_email()");
        row.createCell(23).setCellValue("emp.getEmp_phone()");
        Integer rowNum = 1;
        System.out.println("no");
        for (Emp emp : empList){
            System.out.println("ok");
            //循环创建每一行
            Row listRow = sheet.createRow(rowNum);
            if(emp.getEmp_id()!=null&&!"".equals(emp.getEmp_id())){
                listRow.createCell(0).setCellValue(emp.getEmp_id());
            }
            if(emp.getEmp_number()!=null&&!"".equals(emp.getEmp_number())){
                listRow.createCell(1).setCellValue(emp.getEmp_number());
            }
            if(emp.getEmp_education()!=null&&!"".equals(emp.getEmp_education())){
                listRow.createCell(2).setCellValue(emp.getEmp_education());
            }
            if(emp.getEmp_height()!=null&&!"".equals(emp.getEmp_height())){
                listRow.createCell(3).setCellValue(emp.getEmp_height());
            }
            if(emp.getEmp_address()!=null&&!"".equals(emp.getEmp_address())){
                listRow.createCell(4).setCellValue(emp.getEmp_address());
            }
            if(emp.getEmp_name()!=null&&!"".equals(emp.getEmp_name())){
                listRow.createCell(5).setCellValue(emp.getEmp_name());
            }
            if(emp.getEmp_sex()!=null&&!"".equals(emp.getEmp_sex())){
                listRow.createCell(6).setCellValue(emp.getEmp_sex());
            }
            if(emp.getEmp_weight()!=null&&!"".equals(emp.getEmp_weight())){
                listRow.createCell(7).setCellValue(emp.getEmp_weight());
            }
            if(emp.getEmp_birthday()!=null&&!"".equals(emp.getEmp_birthday())){
                listRow.createCell(8).setCellValue(emp.getEmp_birthday());
            }
            if(emp.getEmp_leaveTime()!=null&&!"".equals(emp.getEmp_leaveTime())){
                listRow.createCell(9).setCellValue(emp.getEmp_leaveTime());
            }
            if(emp.getEmp_tel()!=null&&!"".equals(emp.getEmp_tel())){
                listRow.createCell(10).setCellValue(emp.getEmp_tel());
            }
            if(emp.getEmp_education()!=null&&!"".equals(emp.getEmp_education())){
                listRow.createCell(11).setCellValue(emp.getEmp_education());
            }
            if(emp.getEmp_maritalStatus()!=null&&!"".equals(emp.getEmp_maritalStatus())){
                listRow.createCell(12).setCellValue(emp.getEmp_maritalStatus());
            }
            if(emp.getEmp_departureTb()!=null&&!"".equals(emp.getEmp_departureTb())){
                listRow.createCell(13).setCellValue(emp.getEmp_departureTb());
            }
            if(emp.getEmp_currentAddress()!=null&&!"".equals(emp.getEmp_currentAddress())){
                listRow.createCell(14).setCellValue(emp.getEmp_currentAddress());
            }
            if(emp.getEmp_bloodType()!=null&&!"".equals(emp.getEmp_bloodType())){
                listRow.createCell(15).setCellValue(emp.getEmp_bloodType());
            }
            if(emp.getEmp_health()!=null&&!"".equals(emp.getEmp_health())){
                listRow.createCell(16).setCellValue(emp.getEmp_health());
            }
            if(emp.getEmp_category()!=null&&!"".equals(emp.getEmp_category())){
                listRow.createCell(17).setCellValue(emp.getEmp_category());
            }
            if(emp.getEmp_job()!=null&&!"".equals(emp.getEmp_job())){
                listRow.createCell(18).setCellValue(emp.getEmp_job());
            }
            if(emp.getEmp_idCard()!=null&&!"".equals(emp.getEmp_idCard())){
                listRow.createCell(19).setCellValue(emp.getEmp_idCard());
            }
            if(emp.getEmp_testPos()!=null&&!"".equals(emp.getEmp_testPos())){
                listRow.createCell(20).setCellValue(emp.getEmp_testPos());
            }
            if(emp.getEmp_prize()!=null&&!"".equals(emp.getEmp_prize())){
                listRow.createCell(21).setCellValue(emp.getEmp_prize());
            }
            if(emp.getEmp_email()!=null&&!"".equals(emp.getEmp_email())){
                listRow.createCell(22).setCellValue(emp.getEmp_email());
            }
            if(emp.getEmp_phone()!=null&&!"".equals(emp.getEmp_phone())){
                listRow.createCell(23).setCellValue(emp.getEmp_phone());
            }

            rowNum++;
        }
        //写入目标文件
        String targetFile ="D:";
        File file = new File(targetFile,"用户统计表.xlsx");
        //获取输出流
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        //流写出
        workbook.write(fileOutputStream);
        //刷新
        fileOutputStream.flush();
        //关闭
        workbook.close();
        fileOutputStream.close();
        r.setCode(200);
        r.setMsg("导出成功");
        return r;
    }

    @Override
    public R excelRead(Emp emp) {
        R r=new R();
        if (emp!=null){
            int result02=empExcelWriteMapper.empIdQuery();
            emp.setEmp_id(result02+1);

            int result = empExcelWriteMapper.excelRead(emp);
            if(result>-1){
                r.setCode(200);
                r.setMsg("success");
            }
        }
        else{
            r.setCode(500);
            r.setMsg("错误");
        }
        return r;
    }


}
